RoleMenu = function() {
	return {
		
		//是否选择角色标识
		IS_ROLE_SELECTED_FLAG : false,
		
		initRole : function() {
			$("#roleGrid").datagrid({
				url				: '/pc/roleMenu/roles.htm',
				fit				: true,
				fitColumns		: true,
				striped			: true,
				rownumbers		: true,
				autoRowHeight	: true,
				singleSelect    : true,
				nowrap			: true,
				pagination		: true,
				pageSize        : 20,
				pageList        : [10, 20, 30, 40, 50],
				method 			: 'POST',
				columns         : [[
					 { field : 'roleId',      title : '角色Id',     width : 50,    hidden : true },
					 { field : 'roleName',    title : '角色名称',   width : 80 },
					 { field : 'status',      title : '状态',       width : 80,    formatter : function(value, rows, index) {
						 if("0" == value) {
							 return "启用";
						 } else if("1" == value) {
							 return "禁用";
						 } else {
							 return "";
						 }
					 }}
				]],
				onClickRow       : function(rowIndex, rowData) {
					$('#tree').mask('加载中 ……');
					RoleMenu.IS_ROLE_SELECTED_FLAG = false;
					//设置已选中节点的非选中状态
					var checkedNodes = $("#menuTree").tree('getChecked');
					for(var i = 0; i < checkedNodes.length; i++) {
						$("#menuTree").tree('uncheck', checkedNodes[i].target);
					}
					//设置角色对应的菜单的选中状态
					$.ajax({
						url     : '/pc/roleMenu/getMenuByRoleId.htm?roleId=' + rowData.roleId,
						type    : 'POST',
						success : function(data) {
							for(var i = 0; i < data.length; i++) {
								var roleMenu = $("#menuTree").tree('find', data[i].menu_id);
								if(roleMenu) {
									$("#menuTree").tree('check', roleMenu.target);
								}
							}
							$('#tree').unmask();
						},
						error   : function() {
							$('#tree').unmask();
						}
					});
					RoleMenu.IS_ROLE_SELECTED_FLAG = true;
				}
			});
		},
		
		initTree : function() {
			$("#menuTree").tree({
				url           : '/pc/roleMenu/tree.htm',
				method        : 'POST',
				animate       : true,
				checkbox      : true,
				onLoadSuccess : function(node, data) {
					$("#menuTree").tree('expandAll');
					RoleMenu.IS_ROLE_SELECTED_FLAG = false;
				},
				onCheck       : function(node, checked) {
					var selectedRole = $("#roleGrid").datagrid('getSelected');
					//已选择角色
					if(RoleMenu.IS_ROLE_SELECTED_FLAG) {
						if("Y" == node.attributes) {
							if(checked) {
								/***************************  增加叶子节点  ***************************/
								$.ajax({
									url     : '/pc/roleMenu/add.htm?roleId=' + selectedRole.roleId + '&menuId=' + node.id,
									type    : 'POST',
									success : function(data) {
										
									}
								});
							} else {
								/***************************  删除叶子节点  ***************************/
								$.ajax({
									url     : '/pc/roleMenu/delete.htm?roleId=' + selectedRole.roleId + '&menuId=' + node.id,
									type    : 'POST',
									success : function(data) {
										
									}
								});
							}
						} else {
							if(checked) {
								/**************************  增加非叶子节点  **************************/
								$.ajax({
									url     : '/pc/roleMenu/addAll.htm?roleId=' + selectedRole.roleId + '&menuId=' + node.id,
									type    : 'POST',
									success : function(data) {
										
									}
								});
							} else {
								/**************************  删除非叶子节点  **************************/
								$.ajax({
									url     : '/pc/roleMenu/deleteAll.htm?roleId=' + selectedRole.roleId + '&menuId=' + node.id,
									type    : 'POST',
									success : function(data) {
										
									}
								});
							}
						}
					}
				}
			});
		},
		
		init : function() {
			this.initRole();
			this.initTree();
		}
	};
}();

$(function(){
	RoleMenu.init();
});